Generative Adversarial Networks Tutorial